Formal Mathematics for Verifiably Correct Program Synthesis
نویسنده
چکیده
We describe a formalization of the meta-mathematics of programming in a higher-order logical calculus as a means to create verifiably correct implementations of program synthesis tools. Using reflected notions of programming concepts we can specify the actions of synthesis methods within the object language of the calculus and prove formal theorems about their behavior. The theorems serve as derived inference rules implementing the kernel of these methods in a flexible, safe, efficient and comprehensible way. We demonstrate the advantages of using formal mathematics in support of program development systems through an example in which we formalize a strategy for deriving global search algorithms from formal specifications.
منابع مشابه
A Foundation for Verified Software Development Systems
We describe a formalization of the meta-mathematics of programming in a higher-order calculus as a means to create verifiably correct implementations of program synthesis tools. Formal definitions and lemmata are used to raise the level of abstraction in formal reasoning to one comprehensible for programmers. Formal metatheorems make explicit the semantic knowledge contained in program derivati...
متن کاملConstructing Verifiably Correct Java Programs Using OCL and CleanJava
A recent trend in software development is building a precise model that can be used as a basis for the software development. Such a model may enable an automatic generation of working code, and more importantly it provides a foundation for correctness reasoning of code. In this paper we propose a practical approach for constructing a verifiably correct program from such a model. The key idea of...
متن کاملDesigning Reliable, High-Performance Networks in the Nuprl Programming Environment
Formal methods tools have greatly influenced our ability to increase the reliability of software and hardware systems. Extended type checkers, model checkers and theorem provers have been used to detect subtle errors in prototype code and to clarify critical concepts in system design. Automated theorem proving now has the potential to support a formal development of reliable systems at the same...
متن کاملMcNaughton Games and Extracting Strategies for Concurrent Programs
Nerode et al. [ 131 showed that a correct concurrent program can be viewed as a winning strategy in a suitably defined two player game played between the Programmer and the Computer in which the program specification is defined by the rules of the game together with the winning condition. This gives rise to the question as to whether there are useful algorithms to extract (provably) winning str...
متن کاملA Formal Approach to Deductive Synthesis of Constraint Logic Programs
Formal program synthesis is concerned with deriving programs that are (formally) correct wrt their speciications, and is therefore of crucial importance to formal development of veriiably correct software. Declarative paradigms such as logic programming are particularly suitable for program synthesis, and we have formulated a formal approach to synthesising standard logic programs. Our approach...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Logic Journal of the IGPL
دوره 4 شماره
صفحات -
تاریخ انتشار 1996